package search.transcoord;

import java.io.IOException;
import java.util.ArrayList;

import org.apache.log4j.Logger;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import search.local.LocalItem;
import study.itwill.common.XmlParser;

public class TransCoordLoader {

	static Logger logger = Logger.getLogger(TransCoordLoader.class);

	public String getTransCoord(String x, String y) {

		logger.debug("=========== method start >> getLocalList");

		String result = null;

		// 네이버 이미지 검색 URL
		String url = "http://apis.daum.net/local/geo/transcoord" + "?apikey="
				+ "0742d1ea1eab6220018c3f9716569897d5ec4ff5" + "&x=" + x
				+ "&y=" + y + "&fromCoord=" + "KTM" + "&toCoord=" + "WGS84";

		/************ XML 데이터 처리 시작 ***********/

		XmlPullParser parser = XmlParser.getParser(url);

		if (parser == null) {
			logger.error("xml parser is null");
			// 통신 실패이므로 null 리턴
			return null;
		}

		// 통신 성공시 ArrayList 객체 할당
		// list = new ArrayList<LocalItem>();

		try {
			// String tag = null;
			int type = parser.getEventType();

			// --------------------------------------------------------
			/** 읽은 내용을 담기 위한 변수 */
			/*String title = null;
			String mapx = null;
			String mapy = null;*/
			// --------------------------------------------------------

			while (type != XmlPullParser.END_DOCUMENT) {
				//tag = parser.getName();

				switch (type) {
				case XmlPullParser.START_TAG:

					result = parser.getAttributeValue(1) + ","
							+ parser.getAttributeValue(0);
					// --------------------------------------------------------
					/** 원하는 종류의 시작태그를 만났을 때, 값을 추출 */
					/*if (tag.equals("title")) {
						parser.next();
						title = parser.getText().trim();
					} else if (tag.equals("mapx")) {
						parser.next();
						mapx = parser.getText().trim();
					} else if (tag.equals("mapy")) {
						parser.next();
						mapy = parser.getText().trim();
						// HTML태그 제거
						// description = Util.removeTag(description);
					}*/
					// --------------------------------------------------------
					break;

				case XmlPullParser.END_TAG:
					// --------------------------------------------------------
					/** 데이터의 그룹단위를 표현하는 태그가 종료되었을 때, 데이터 수집 */
					/*if (tag.equals("item")) {
						LocalItem item = new LocalItem(title, mapx, mapy);
						list.add(item);
					}*/
					// --------------------------------------------------------
					break;
				}

				type = parser.next();
			}
		} catch (XmlPullParserException e) {
			logger.error("파서 생성 실패 >> " + e.toString());
		} catch (IOException e) {
			logger.error("파서 읽기 실패 >> " + e.toString());
		}
		/************ XML 데이터 처리 끝 ***********/

		logger.debug("=========== method end >> getLocalList");

		return result;
	}
	
	public String getReverseTransCoord(String x, String y) {

		logger.debug("=========== method start >> getLocalList");

		String result = null;

		// 네이버 이미지 검색 URL
		String url = "http://apis.daum.net/local/geo/transcoord" + "?apikey="
				+ "0742d1ea1eab6220018c3f9716569897d5ec4ff5" + "&x=" + x
				+ "&y=" + y + "&fromCoord=" + "KTM" + "&toCoord=" + "WGS84";

		/************ XML 데이터 처리 시작 ***********/

		XmlPullParser parser = XmlParser.getParser(url);

		if (parser == null) {
			logger.error("xml parser is null");
			// 통신 실패이므로 null 리턴
			return null;
		}

		// 통신 성공시 ArrayList 객체 할당
		// list = new ArrayList<LocalItem>();

		try {
			// String tag = null;
			int type = parser.getEventType();

			// --------------------------------------------------------
			/** 읽은 내용을 담기 위한 변수 */
			/*String title = null;
			String mapx = null;
			String mapy = null;*/
			// --------------------------------------------------------

			while (type != XmlPullParser.END_DOCUMENT) {
				//tag = parser.getName();

				switch (type) {
				case XmlPullParser.START_TAG:

					result = parser.getAttributeValue(0) + ","
							+ parser.getAttributeValue(1);
					// --------------------------------------------------------
					/** 원하는 종류의 시작태그를 만났을 때, 값을 추출 */
					/*if (tag.equals("title")) {
						parser.next();
						title = parser.getText().trim();
					} else if (tag.equals("mapx")) {
						parser.next();
						mapx = parser.getText().trim();
					} else if (tag.equals("mapy")) {
						parser.next();
						mapy = parser.getText().trim();
						// HTML태그 제거
						// description = Util.removeTag(description);
					}*/
					// --------------------------------------------------------
					break;

				case XmlPullParser.END_TAG:
					// --------------------------------------------------------
					/** 데이터의 그룹단위를 표현하는 태그가 종료되었을 때, 데이터 수집 */
					/*if (tag.equals("item")) {
						LocalItem item = new LocalItem(title, mapx, mapy);
						list.add(item);
					}*/
					// --------------------------------------------------------
					break;
				}

				type = parser.next();
			}
		} catch (XmlPullParserException e) {
			logger.error("파서 생성 실패 >> " + e.toString());
		} catch (IOException e) {
			logger.error("파서 읽기 실패 >> " + e.toString());
		}
		/************ XML 데이터 처리 끝 ***********/

		logger.debug("=========== method end >> getLocalList");

		return result;
	}
}
